<%@ page import="com.example.bean.User1" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %><%--
  Created by IntelliJ IDEA.
  User: zhanghz001
  Date: 2020/11/3
  Time: 16:38
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page pageEncoding="UTF-8" %>
<html>
<head>
    <title>el</title>
</head>
<body>
<%--EL表达式概念：
它是Expression Language的缩写。它是一种替换jsp表达式的语言。
EL表达式的语法：
${表达式}
表达式的特点：有明确的返回值。
EL表达式就是把内容输出到页面上
EL表达式的注意事项：
1.EL表达式没有空指针异常
2.EL表达式没有数组下标越界
3.EL表达式没有字符串拼接
EL表达式的数据获取：
它只能在四大域对象中获取数据，不在四大域对象中的数据它取不到。
它的获取方式就是findAttribute(String name)
--%>
<br/>
-----------获取对象数据---------------------
<br/>
<%
    //用户放入域对象
    pageContext.setAttribute("u", new User1());
%>
<br>
${u}
<br>
${u.name}
<br>
${u.age}
<br>
<%
    pageContext.findAttribute("u");
%>
<br/>
-----------获取关联对象数据------------------
<br>

${u.address}
<br>
${u.address.province}
<br>
${u.address.city}
<br>
${u["address"]["city"]}

<br/>
-----------获取数组数据---------------------
<br/>
<%
    String[] strings = {"111", "222", "333", "4444"};
    pageContext.setAttribute("strs", strings);
%>
${strs[0]}
<br>
${strs[1]}
<br>
${strs["2"]}
<br>
${strs["3"]}
<br/>
-----------获取List集合数据-----------------
<br/>
<%
    List<String> list = new ArrayList<String>();
    list.add("AAA");
    list.add("BBB");
    list.add("CCC");
    list.add("DDD");
    request.setAttribute("list", list);
%>
<br>
${list[0]}
<br>
${list[1]}
<br>
${list[2]}

<br>
<br/>
-----------获取Map集合数据------------------
<br/>
<br>
<%
    Map<String, User1> map = new HashMap<String, User1>();
    map.put("aaa", new User1());

    session.setAttribute("map", map);
%>
<br>
${map["aaa"]}
<br>
${map.aaa.name}
<br>
</body>
</html>
